package cn.iocoder.yudao.module.mqtt.controller.admin.config.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;

@Schema(description = "管理后台 - MQTT配置新增/修改 Request VO")
@Data
public class ConfigSaveReqVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21787")
    private Long id;

    @Schema(description = "MQTT配置名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @NotEmpty(message = "MQTT配置名称不能为空")
    private String name;

    @Schema(description = "用户名", example = "王五")
    private String username;

    @Schema(description = "密码")
    private String password;

    @Schema(description = "MQTT服务器地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
    @NotEmpty(message = "MQTT服务器地址不能为空")
    private String url;

    @Schema(description = "订阅客户端ID", example = "2315")
    private String subClientId;

    @Schema(description = "订阅主题，多个主题用逗号分隔")
    private String subTopics;

    @Schema(description = "发布客户端ID", example = "18921")
    private String pubClientId;

    @Schema(description = "0 离线 1 在线", requiredMode = Schema.RequiredMode.REQUIRED)
    private String isOnline;

    @Schema(description = "是否启用：0-禁用，1-启用", example = "mqtt")
    private Boolean enabled;

    @Schema(description = "描述", example = "你猜")
    private String description;

}